# -*- coding: utf-8 -*-
"""
文件操作工具模块
"""
from PyQt5.QtWidgets import QFileDialog


def open_file_dialog(parent=None, caption="打开文件", directory="", file_filter=""):
    """
    打开文件选择对话框
    
    参数:
        parent: 父窗口部件
        caption: 对话框标题
        directory: 初始目录
        file_filter: 文件过滤器，例如 "日志文件 (*.log *.txt);;所有文件 (*.*)"
    
    返回:
        str: 选中的文件路径，如果用户取消则返回空字符串
    """
    options = QFileDialog.Options()
    options |= QFileDialog.DontUseNativeDialog  # 使用Qt的文件对话框而非系统原生
    
    # 默认文件过滤器
    if not file_filter:
        file_filter = "所有文件 (*.*);;日志文件 (*.log *.txt);;文本文件 (*.txt)"
    
    file_path, _ = QFileDialog.getOpenFileName(
        parent=parent,
        caption=caption,
        directory=directory,
        filter=file_filter,
        options=options
    )
    
    return file_path